home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / cris / include / asm / pgalloc.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.3 KB  |  59 lines

  1. #ifndef _CRIS_PGALLOC_H
  2. #define _CRIS_PGALLOC_H
  3.  
  4. #include <linux/threads.h>
  5. #include <linux/mm.h>
  6.  
  7. #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, pte)
  8. #define pmd_populate(mm, pmd, pte) pmd_set(pmd, page_address(pte))
  9. #define pmd_pgtable(pmd) pmd_page(pmd)
  10.  
  11. /*
  12.  * Allocate and free page tables.
  13.  */
  14.  
  15. static inline pgd_t *pgd_alloc (struct mm_struct *mm)
  16. {
  17.     return (pgd_t *)get_zeroed_page(GFP_KERNEL);
  18. }
  19.  
  20. static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
  21. {
  22.     free_page((unsigned long)pgd);
  23. }
  24.  
  25. static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
  26. {
  27.       pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
  28.      return pte;
  29. }
  30.  
  31. static inline pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address)
  32. {
  33.     struct page *pte;
  34.     pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0);
  35.     pgtable_page_ctor(pte);
  36.     return pte;
  37. }
  38.  
  39. static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
  40. {
  41.     free_page((unsigned long)pte);
  42. }
  43.  
  44. static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
  45. {
  46.     pgtable_page_dtor(pte);
  47.     __free_page(pte);
  48. }
  49.  
  50. #define __pte_free_tlb(tlb,pte)                \
  51. do {                            \
  52.     pgtable_page_dtor(pte);                \
  53.     tlb_remove_page((tlb), pte);            \
  54. } while (0)
  55.  
  56. #define check_pgt_cache()          do { } while (0)
  57.  
  58. #endif
  59.